package com.xizi.single;

// 懒汉式单例 只能在单线程下使用
public class Singleton2 {
    // 指向自己实例的私有静态引用
    private static Singleton2 singleton2;

    // 私有的构造方法
    private Singleton2() {
    }

    // 以自己实例为返回值的静态的公有方法，静态工厂方法
    public static Singleton2 getSingleton2() {
        // 被动创建，在真正需要使用时才去创建
        if (singleton2 == null) { //在多线程下, 这里会出现问题
            singleton2 = new Singleton2();
        }
        return singleton2;
    }

    public static void main(String[] args) {
        Singleton2 singleton2 = Singleton2.getSingleton2();
        Singleton2 singleton3 = Singleton2.getSingleton2();
        System.out.println(singleton2 == singleton3); //true


    }
}